Domain engineering and generic programming for parallel scientific computing
نویسنده
چکیده
The development of software for scientific applications that rest on dynamic or irregular meshes causes many problems because of the conflicting issues of flexibility and efficiency. This dissertation addresses these problems in the following way. Firstly, it applies the ideas of domain engineering to the field of data-parallel applications in order to design reusable software products that accelerate the development of specific applications in this domain. It starts with an analysis of typical data-parallel applications and formulates general requirements on the components that can be used in this domain. Secondly, using the ideas of generic programming the Janus software architecture is defined. The resulting conceptual framework and C++ template library Janus provides a flexible and extensible collection of efficient data structures and algorithms for a broad class of data-parallel applications. In particular, finite difference methods, (adaptive) finite element methods, and data-parallel graph algorithms are supported. An outstanding advantage of providing a generic C++ framework is that it provides application-oriented abstractions that achieve high performance without relying on language extension or nonstandard compiler technology. The C++ template mechanism allows to plug user-defined types into the Janus data structures and algorithms. Moreover, Janus components can easily be combined with standard software packages of this field. A portable implementation of Janus for distributed-memory architectures that utilizes the standard Message Passing Interface (MPI) is described. The expressiveness of Janus is proven by the implementation of several standard problems from the realm of data-parallel scientific applications. The performance of Janus is evaluated by comparing the Janus applications with those that use other state-of-the-art components. The examination of scalability on a high-performance Linux cluster system shows that Janus is on par with current scientific software.
منابع مشابه
Parallel computing using MPI and OpenMP on self-configured platform, UMZHPC.
Parallel computing is a topic of interest for a broad scientific community since it facilitates many time-consuming algorithms in different application domains.In this paper, we introduce a novel platform for parallel computing by using MPI and OpenMP programming languages based on set of networked PCs. UMZHPC is a free Linux-based parallel computing infrastructure that has been developed to cr...
متن کاملDevelopment and Utilization of Parallel Generic Algorithms for Scientific Computations
We develop generic parallel algorithms as extensible modules that encapsulate related classes and parallel methods. Extensible modules define common parallel structures, such as meshes, pipelines, or master-server networks in problem-independent manner. Such modules can be extended with sequential domain-specific code in order to derive particular parallel applications. In this paper, we first ...
متن کاملThe Matrix Template Library: generic components for high-performance scientific computing
COMPUTING IN SCIENCE & ENGINEERING tal paradigm underlying the STL, was an important and powerful new software development methodology—and this has been borne out by the tremendous success of the STL for generalpurpose programming. Not so obvious then, however, was how (or even if) generic programming could apply to other problem domains. To investigate the merit of this approach for scientific...
متن کاملCloud Computing Technology Algorithms Capabilities in Managing and Processing Big Data in Business Organizations: MapReduce, Hadoop, Parallel Programming
The objective of this study is to verify the importance of the capabilities of cloud computing services in managing and analyzing big data in business organizations because the rapid development in the use of information technology in general and network technology in particular, has led to the trend of many organizations to make their applications available for use via electronic platforms hos...
متن کاملThe Java and C++ platforms for scientific computing
Scientific computing is evolving beyond array processing to be more interactive, more graphical, more parallel, and less structured than it was when most scientific software was written. Languages such as C++ and Java, designed for object-oriented and generic programming, enhance the development of new data structures and algorithms that are part of this evolution. But these languages complicat...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002